/**
 * 
 */
package br.gov.sjc.socialalimenta.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import br.gov.sjc.classes.Escolaridade;
import br.gov.sjc.classes.Nome;

/**
 * @author rodrigo.ramos
 *
 */
public class NomeDAO  extends SQLiteOpenHelper {
	private static final String TABELA = "tab_SocialA_Nome";
	private static final String DATABASE_NAME = "SocialAlimenta";
	private static final int VERSION = 1;
	private static final int DATABASE_VERSION = 1;
	private static final String[] COLS = {"_id", "SiasN", "idMembro", "Nome","DNasc","NomeMae","NomePai","NaturalCidade","Titular","Excluido","Parentesco"};
	
	public NomeDAO(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		String sql = "CREATE TABLE IF NOT EXISTS " + TABELA + 
		"(_id INTEGER PRIMARY KEY autoincrement," +
		" SiasN INTEGER," + 
		" idMembro INTEGER," +
		" Nome TEXT," + 
		" DNasc TEXT, " +
		" NomeMae TEXT, " +
		" NomePai TEXT, " +
		" NaturalCidade TEXT, " +
		" Titular TEXT, " +
		" Excluido TEXT, " +
		" Parentesco TEXT " +
		");";
		db.execSQL(sql);
		/**/
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE IF EXISTS " + NomeDAO.TABELA);
		this.onCreate(db);/**/
	}
	
	public void inserir(Nome nome){ 
		ContentValues valores = new ContentValues();
		valores.put("SiasN", nome.getSiasN());
		valores.put("idMembro", nome.getIdMembro());
		valores.put("Nome", nome.getNome());
		valores.put("DNasc", nome.getDNasc());
		valores.put("NomeMae", nome.getNomeMae());
		valores.put("NomePai", nome.getNomePai());
		valores.put("NaturalCidade", nome.getNaturalCidade());
		valores.put("Titular", nome.getTitular());
		valores.put("Excluido", nome.getExcluido());
		valores.put("Parentesco", nome.getParentesco());

		getWritableDatabase().insert(TABELA, null, valores);
	}
	
	public List<Nome> getLista(){
		Cursor c = getWritableDatabase().query(TABELA, COLS, null, null, null, null, null);
		List<Nome> lista = new ArrayList<Nome>();
		while(c.moveToNext()){
			Nome nome = new Nome();
			nome.set_id(c.getInt(0));
			nome.setSiasN(c.getInt(1));
			nome.setIdMembro(c.getInt(2));
			nome.setNome(c.getString(3));
			nome.setDNasc(c.getString(4));
			nome.setNomeMae(c.getString(5));
			nome.setNomePai(c.getString(6));
			nome.setNaturalCidade(c.getString(7));
			nome.setTitular(c.getString(8));
			nome.setExcluido(c.getString(9));
			nome.setParentesco(c.getString(10));

			lista.add(nome);
		}
		c.close();
		
		return lista;
		
	}

	public Nome getById(int posicao) {
		Cursor c = getWritableDatabase().query(TABELA, COLS, "_id=?", new String[]{"" + posicao}, null, null, null);
		c.moveToFirst();
		
		Nome nome = new Nome();
		nome.set_id(c.getInt(0));
		nome.setSiasN(c.getInt(1));
		nome.setIdMembro(c.getInt(2));
		nome.setNome(c.getString(3));
		nome.setDNasc(c.getString(4));
		nome.setNomeMae(c.getString(5));
		nome.setNomePai(c.getString(6));
		nome.setNaturalCidade(c.getString(7));
		nome.setTitular(c.getString(8));
		nome.setExcluido(c.getString(9));
		nome.setParentesco(c.getString(10));
		
		c.close();
		return nome;
	}

	public void alterar(Nome nome) {
		ContentValues valores = new ContentValues();
		valores.put("SiasN", nome.getSiasN());
		valores.put("idMembro", nome.getIdMembro());
		valores.put("Nome", nome.getNome());
		valores.put("DNasc", nome.getDNasc());
		valores.put("NomeMae", nome.getNomeMae());
		valores.put("NomePai", nome.getNomePai());
		valores.put("NaturalCidade", nome.getNaturalCidade());
		valores.put("Titular", nome.getTitular());
		valores.put("Excluido", nome.getExcluido());
		valores.put("Parentesco", nome.getParentesco());
		
		getWritableDatabase().update(TABELA, valores, "_id=?", new String[]{"" + nome.get_id()});
		
	}

	public boolean recreateTable(SQLiteDatabase database) {
		boolean retorno = false;
		try {
			database.execSQL("DROP TABLE IF EXISTS " + TABELA);
	    	onCreate(database);
	    	retorno = true;
		}catch(Exception e){
			Log.e(TABELA,"ERRO MENSAGEM:"+e.getMessage());
        }
		return retorno;
	}


}
